"""
!/usr/bin/env python
-*- coding: utf-8 -*-
@Author  : MarkJia
@Site    : 
@File    : 28、日志模块进阶：封装日志.py
"""
import logging
import os


#  顺序：1、logger记录器   2、Handler处理器（决定输出到终端StreamHandler还是文件FileHandler中）   3、Formatter格式器
#  在同一级目录下生成一个日志模块

def get_logger():
    # create logger   ： 创建记录器
    logger = logging.getLogger(os.path.basename(__file__))
    logger.setLevel(logging.DEBUG)



    # create console handler and set level to debug ： 创建文件处理器并设置日志级别为 debug
    ch = logging.FileHandler(filename='mylog.log', encoding="utf-8")
    ch.setLevel(logging.DEBUG)
    # 创建终端处理器
    streamHandler = logging.StreamHandler()


    # create formatter : 创建格式器
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')


    # 将格式器添加到处理器
    # add formatter to ch
    ch.setFormatter(formatter)
    # 控制台设置日志格式
    streamHandler.setFormatter(formatter)


    # add ch to logger   将处理器添加到记录器
    logger.addHandler(ch)
    logger.addHandler(streamHandler)

    return  logger

# 实例化日志模块
logger = get_logger()
logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')


